# llm_utils.py

import openai
import json
from config import Config

openai.api_key = Config.LLM_API_KEY
if Config.LLM_BASE_URL:
    openai.base_url = Config.LLM_BASE_URL

def generate_clean_mapping_prompt(table_info):
    return f"""
请分析以下表格信息，输出清洗后的字段名、类型和表名映射：

原始表名: {table_info['table_name']}
字段:
{json.dumps(table_info['columns'], ensure_ascii=False, indent=2)}

任务要求:
1. 将字段名转换为英文或拼音简写（如"编号"→"id", "出生日期"→"birth_date"）
2. 推理出合适的英文表名（如"用户表"→"users"）
3. 输出格式如下 JSON:

{{
  "physical_table_name": "users",
  "columns": [
    {{"name": "id", "type": "int"}},
    {{"name": "name", "type": "string"}},
    {{"name": "birth_date", "type": "date"}}
  ]
}}
"""

def get_cleaned_schema(table_info):
    prompt = generate_clean_mapping_prompt(table_info)
    response = openai.chat.completions.create(
        model=Config.LLM_MODEL_NAME,
        messages=[{"role": "user", "content": prompt}],
        temperature=0
    )
    return json.loads(response.choices[0].message.content)